/*
 * Auto generated C++ header for Mass Effect 2.
 *	by _silencer.
 */

#ifndef UNREAL_SDK_GAME_SFXGameContent_H
#define UNREAL_SDK_GAME_SFXGameContent_H

#include "unreal_game_global.h"

namespace game
{
	using namespace unreal;


	class SFXQAPlayerController: public BioPlayerController
	{
		DECLARE_PACKAGE_CLASS( SFXQAPlayerController, BioPlayerController, SFXGameContent )

	public:
		struct PlayerWalking
		{
			/*
			PlayerMove
			*/
		};

		Actor* QAMoveTarget; //offset = 2204, size = 4
		Actor* QARotationTarget; //offset = 2208, size = 4
	};

	enum QAButtons
	{
		AButton,
		BButton,
		XButton,
		YButton,
		RightShoulder,
		LeftShoulder,
		RightTrigger,
		LeftTrigger,
		RightThumbstick,
		LeftThumbstick,
		DPadUp,
	};

	class SFXSeqAct_QAPressButton: public SeqAct_Latent
	{
		DECLARE_PACKAGE_CLASS( SFXSeqAct_QAPressButton, SeqAct_Latent, SFXGameContent )

	public:

		Float ButtonDuration; //offset = 256, size = 4
		Byte Button; //offset = 260, size = 1
		Float TimePressedButton; //offset = 264, size = 4
		PlayerController* Player; //offset = 268, size = 4

		Bool Update( Float DeltaTime );
		void Deactivated( String Command, BioPlayerInput* Input );
		void Activated( String Command, BioPlayerInput* Input );
		String GetBind( BioPlayerInput* Input, Name Key, Bool bControl, Bool bShift, Bool bAlt );
		Name GetKeyName( Byte TestButton );
	};

	enum ESetMaterialParameterType
	{
		SetVectorParameter,
		SetScalarParameter,
		SetTextureParameter,
	};

	struct SeqAct_SetTextureParameters
	{
		Texture* TextureValue; //offset = 0, size = 4
	};

	struct SeqAct_SetScalarParameters
	{
		Float ScalarValue; //offset = 0, size = 4
		Float ScalarStartDelta; //offset = 4, size = 4
	};

	struct SeqAct_SetVectorParameters
	{
		LinearColor ColorValue; //offset = 0, size = 16
		Float VectorStartDelta; //offset = 16, size = 4
	};

	class SFXSeqAct_SetMaterialParameter: public SequenceAction
	{
		DECLARE_PACKAGE_CLASS( SFXSeqAct_SetMaterialParameter, SequenceAction, SFXGameContent )

	public:

		Name MaterialParameter; //offset = 240, size = 8
		Byte SetMaterialType; //offset = 248, size = 1
		MaterialInstance* MaterialInstance; //offset = 252, size = 4
		SeqAct_SetVectorParameters VectorParameterData; //offset = 256, size = 20
		SeqAct_SetScalarParameters ScalarParameterData; //offset = 276, size = 8
		SeqAct_SetTextureParameters TextureParameterData; //offset = 284, size = 4

		void Activated( Object* Target, Actor* chkActor, ActorComponent* Component, MeshComponent* MeshCmpt, MaterialInterface* Mat );
	};
}

#endif
